import javax.swing.plaf.IconUIResource;
import javax.swing.plaf.synth.SynthOptionPaneUI;
import java.util.Arrays;


public class Test {
   // 给你一个整数数组 arr，
    // 请你判断数组中是否存在连续三个元素都是奇数的情况
    // ：如果存在，请返回 true ；否则，返回 false 。
    //示例 1：
   // 输：arr = [2,6,4,1]
    //输出：false
    //解释：不存在连续三个元素都是奇数的情况。
   /*public static void main(String[] args) {
       int []arr = [1,2,34,3,4,5,7,23,12];
       boolean
   }*/
   public boolean threeConsecutiveOdds(int[] arr) {
       int count = 0;
       for(int i =0; i<arr.length;i++){
           if(arr[i]%2!=0){
               count++;
               if(count ==3){
                   return true;
               }

           }
           else {
               count =0;
           }

       }
       return false;

   }



    //给定一个大小为 n 的数组，找到其中的多数元素。
    // 多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。
    public static void main3212(String[] args) {
        int []arr={3,2,3};
        int ret =fun5(arr);
        System.out.println(ret);
    }
    public  static  int fun5(int[]arrary){
    Arrays.sort(arrary);
    return arrary[arrary.length/2];

    }
   //给定一个非空整数数组
    // ，除了某个元素只出现一次以外，
    // 其余每个元素均出现两次。找出那个只出现了一次的元素。

   public static void main321(String[] args) {
       int []arr={2,11,4,4,11,55,55};
       int ret=fun4(arr);
       System.out.println(ret);
   }
public  static  int fun4(int[]arrary){
    int ret=0;
    for (int i =0;i<arrary.length;i++){
        ret ^=arrary[i];
    }
    return  ret;
}



//给定一个整数数组 nums 和一个整数目标值 target，
// 请你在该数组中找出 和为目标值 target 的那 两个 整数，
// 并返回它们的数组下标。
    //  示例 1：
    // 输入：nums = [2,7,11,15], target = 9
    //输出：[0,1]
    // 解释：因为 nums[0] + nums[1] == 9 ，返回 [0, 1] 。
public static void main212(String[] args) {
    int []arr ={2,4,6,8};
    int []ret =findNum(arr,7);
    System.out.println(Arrays.toString(ret));

}
public static int[] findNum(int []arry,int target){
    int [] ret = {-1,-1};
    for(int i = 0;i<arry.length;i++){
        for(int j = i+1;j<arry.length;j++){
            if(arry[i]+arry[j] ==target){
                ret[0]=i;
                ret[1]=j;
            }
        }
    }

    return  ret;

}

    //给定一个有序整型数组, 实现二分查找
    public static void main21 (String[] args ) {
        int [] arrary={2,4,6,8,10};
        System.out.println(binSearch(arrary,10));
        System.out.println(binSearch(arrary,2));
        System.out.println(binSearch(arrary,3));
        System.out.println(binSearch(arrary,6));
    }
    public static int binSearch(int []array,int key){
        int i = 0;
        int j = array.length-1;
        while (i<=j){
            int mid = (i+j)/2;
            if(array[mid]< key){
                i = mid+1;
            } else if (array[mid]==key) {
                return mid;

            }else {
                j = mid-1;
            }
        }
        return  -1;
    }




    //调整数组顺序使得奇数位于偶数之前。调整之后，不关心大小顺序。
    //
    //如数组：[1,2,3,4,5,6]
    //
    //调整后可能是：[1, 5, 3, 4, 2, 6]
    public static void fen2(int[]array){
        int i = 0;
        int j = array.length-1;
        while(i<j){
            while (i < j && array[i]%2!=0){
                i++;
            }
            while (i<j && array[j]%2 ==0){
                j--;

            }
            int temp = array[i];
            array[i] = array[j];
            array[j] = temp;
        }
    }
    public static void main3(String[] args) {
        int []arry ={1,2,3,4,5,6};
        fen2(arry);
        System.out.println(Arrays.toString(arry));

    }





    public static void fun1(int []array){
        for (int i=0;i <array.length;i++){
            array[i] = 2*array[i];
        }
    }
    public static void main2(String[] args) {
        int [ ] array = {1,2,3};
        fun1(array);
        System.out.println(Arrays.toString(array));
    }






    //汉洛塔
    public static void move(char pos1,char pos2){
        System.out.print(pos1+"=>"+pos2);
    }

    public  static void haio(int n,char pos1,char pos2,char pos3){
        if(n ==1){
            move(pos1,pos3);
            return;
        }
        haio(n-1,pos1,pos3,pos2);
        move(pos1,pos3);
        haio(n-1,pos2,pos1,pos3);
    }
    public static void main1(String[] args) {
        haio(1,'A','B','C');
        System.out.println();
        haio(2,'A','B','C');
        System.out.println();
        haio(3,'A','B','C');


    }
}
